A traffic flow is an abstraction of an end to end or an intermediate network overlay that can be provisioned, managed or regulated by means of traffic engineering techniques and monitored. A flow is identified based on some sort of classification. Classification parameters may be a set of or single individual parameter(s) such as destination address, service class etc. A flow may be an aggregate of multiple sub flows with common classification parameters as applied in a Differentiated Service model (a.k.a Diff-Serv) or a sub-flow as applied in an Integrated Service model. Congestion control is important to ensure fair resource allocation is always maintained across multiple traffic flows or virtual connections sharing common network resources such as port, bandwidth, buffer, etc., and to safeguard connection service level agreements (SLAs) for flows against unpredictable network dynamics caused due to non-Gaussian traffic loads incident at the provisioned network flow or transient overloading across the network node resources. Congestion control may be applied during the setup or provisioning of a network flow by using Connection or Call Admission Procedures (CAC) and also during actual traffic flow by regulating traffic entering at the ingress of a flow and leaving the egress of a node. CAC involves carefully allocating required network resources after factoring the SLA specification for that flow and examining available resources.
At the packet or cell level, congestion avoidance is achieved by using Metering or Policing or Usage Parameter control (UPC) at the network ingress and by using Flow Control Procedures (FCP) at the network node egress. User Traffic enters at the network node ingress and is switched out of the node to the next hop node via an egress (i.e. exit) point. UPC is typically applied at the ingress of the flow or overlay to ensure that incident traffic load does not exceed a negotiated traffic contract. Traffic meters or policers measure the temporal or transient properties of the stream of packets or cells selected by a classifier against a traffic profile specified in a target channel adapter (TCA). A meter passes state information to other conditioning functions to trigger a particular action for each packet or cell that is either in- or out-of-profile (to some extent). Thus the policing function is the process of measuring the temporal properties (e.g., cell rate or packet rate) of a traffic stream selected by a classifier. The instantaneous state of this process may be used to affect the operation of a marker, shaper, or dropper, and/or may be used for accounting and measurement purposes.
Policing or Metering functionality may be applied to ATM cell based virtual connections (VCs), MPLS packet based Layer 2 Virtual Private Networks (VPNs) or Pseudowires, MPLS tunnels such as MPLS EXP-bit inferred Label Switched Paths (E-LSPs) and Label inferred LSPs (L-LSPs), Ethernet based Virtual Large Area Networks (IEEE 802.1 q based VLANs) etc. Metering or Policing regulates any provisioned flow by carefully discarding or tagging incoming packets or cells. Tagging is the process of raising the packet or cell loss priority parameter value that is usually embedded in each packet or cell. In an ATM network, metering is known as UPC or network parameter control (NPC). Connection monitoring at a user-network interface (UNI) (private or public) is referred to as UPC. Connection monitoring at a network-network interface (NNI) (private or public) is referred to as NPC. Connection monitoring encompasses all connections crossing the interface where UPC is used. UPC applies to both user connections and signaling channels.
Existing policers, however, lack the ability to make granular policing decisions. Typically, existing policing algorithms make their policing decisions based on expected packet arrival time and a single tolerance threshold, which defines an additional early arrival margin for the flow. If a packet or cell arrives earlier than the expected arrival time, but still within the early arrival margin tolerance then the packet will be considered conforming. The actual cell time of the cell arriving at the connection ingress is compared against the theoretical or expected arrival cell time computed as per the connection's SLA, to identify if the incident cell is conforming or non-conforming. More specifically, typically each packet quanta or cell is associated with a theoretical arrival time and an early arrival limit, wherein a difference of the early arrival limit from the theoretical arrival time delineates a lower boundary of a good zone. Even further, in various existing policers, the theoretical arrival time minus the sum of the early arrival limit and the nominal inter-cell arrival rate increment delineates an upper boundary of the good zone. The existing methods further include determining an actual arrival time for an incoming cell from the cells that make up the virtual connection. Subsequently, the actual arrival time is compared to the upper boundary and the lower boundary to determine whether or not the actual arrival time falls within the good zone. In response to determining that the actual arrival time falls within the good zone, the incoming cell is identified as conforming to the transmission control parameter. High priority cells identified by the policer to be non-conforming with respect to the specified connection SLA may be marked or tagged as lower priority cells or discarded, while lower priority cells found to be non-conforming are discarded. Higher priority cells tagged as lower priority cells may be subjected to subsequent discard at that very network node egress if that egress is under a traffic overloaded condition.
As evident from the description above, the current approaches make their decisions based on a single arrival curve. In order to analyze the limitation of the current approach, consider the following example: Suppose an expected arrival time for a cell is T for a given connection as per its SLA, and the cell delay variation tolerance (CDVT) is ∂L. Assume now that a higher priority cell (denoted by C1) arrives at time (T-∂L1) while another cell (denoted as C2) arrives at time (T-∂L2), where (∂L 1>∂L2>∂L, ∂L>0). Based on the current approach both the cells (C1, C2) shall be marked or tagged to a lower priority as both the cells have arrived earlier than the maximum permissible early arrival time of (T-∂L). Thus, the fact that C1 violated the SLA contract by a larger factor, ∂L1, than C2, which violated the contract by a relatively smaller factor, ∂L2, was not accounted in the tagging process. Thus, under traffic overloaded conditions that may trigger discard of lower priority cells and both C1 and C2 may be subject to discard. Ideally C2 should have had a lower discard preference over C1 based on their actual arrival characteristics as indicated above. However with the currently existing mechanisms, policers are unable to make such granular policing decisions.